package services

import (
	"fmt"
	"supershare/backend/models"
)

// ValidationService 验证服务
type ValidationService struct{}

// NewValidationService 创建验证服务实例
func NewValidationService() *ValidationService {
	return &ValidationService{}
}

// ValidateMeituan 验证美团配置
func (v *ValidationService) ValidateMeituan(req *models.Meituan) error {
	if req.StoreId <= 0 {
		return fmt.Errorf("门店ID不能为空")
	}
	if req.AppKey == "" {
		return fmt.Errorf("AppKey不能为空")
	}
	if req.AppSecret == "" {
		return fmt.Errorf("AppSecret不能为空")
	}
	if req.PoiId == "" {
		return fmt.Errorf("美团门店ID不能为空")
	}
	return nil
}

// ValidateMeituanGroup 验证美团团购活动
func (v *ValidationService) ValidateMeituanGroup(req *models.MeituanGroup) error {
	if req.StoreId <= 0 {
		return fmt.Errorf("门店ID不能为空")
	}
	if req.Title == "" {
		return fmt.Errorf("活动标题不能为空")
	}
	if req.GroupPrice <= 0 {
		return fmt.Errorf("团购价格必须大于0")
	}
	return nil
}

// ValidateMeituanGroupOrder 验证美团团购订单处理参数
func (v *ValidationService) ValidateMeituanGroupOrder(id int64, status int) error {
	if id <= 0 {
		return fmt.Errorf("订单ID不能为空")
	}
	if status < 1 || status > 3 {
		return fmt.Errorf("无效的订单状态")
	}
	return nil
}

// ValidatePaginationParams 验证分页参数
func (v *ValidationService) ValidatePaginationParams(page, pageSize int) (int, int, error) {
	if page < 1 {
		page = 1
	}
	if pageSize < 1 || pageSize > 100 {
		pageSize = 10
	}
	return page, pageSize, nil
}

// ValidateTimeRange 验证时间范围参数
func (v *ValidationService) ValidateTimeRange(startTime, endTime string) error {
	// 这里可以添加更复杂的时间验证逻辑
	return nil
}